package main

import (
	"golang.org/x/text/cases"
	"golang.org/x/text/language"
	"os"
	"text/template"
)

const templateText = `
Output 0: {{title .Name1}}
Output 1: {{title .Name2}}
Output 2: {{.Name3 | title}}
`

func main() {
	caser := cases.Title(language.Und)
	funcMap := template.FuncMap{"title": caser.String}
	tp1 := template.New("go-programming-02_tour")   //创建一个全新的模版对象
	tp1, _ = tp1.Funcs(funcMap).Parse(templateText) //将常量 templateText（预定义的待解析模版）解析为当前文本模版的主体内容
	data := map[string]string{
		"Name1": "go",
		"Name2": "programming",
		"Name3": "02_tour",
	}
	_ = tp1.Execute(os.Stdout, data) //模版渲染；因为我们将 Execute 方法的 io.Writer 指定到了 os.Stdout 中，所以其最终输出到标准控制台中
}

/*
Output 0: Go
Output 1: Programming
Output 2: Tour
*/
